草庐IT

Java HotSpot 枚举开销

全部标签

ios - 如何通过 Swift 4 中的原始值获取枚举案例的名称?

使用Xcode9.4.1和Swift4.1有一个包含Int类型的多个案例的枚举,如何通过其rawValue打印案例名称?publicenumTestEnum:UInt16{caseONE=0x6E71caseTWO=0x0002caseTHREE=0x0000}我正在通过rawValue访问枚举:print("\nCommandType=0x"+String(format:"%02X",someObject.getTestEnum.rawValue))/*thisprints:CommandType=0x6E71ifthegivenIntegervaluefromsomeObject.

swift - 检查枚举是否可以从开关中的参数创建

我有一个类似...的枚举enumMyEnum{casea(Foo)casebcasec(Bar)enumFoo:String{caseonecasetwo}enumBar:String{casethreecasefour}}我正在尝试为此创建一个可失败的初始化函数,以便您可以像...一样调用它MyEnum(base:"a",parameter:"one")或MyEnum(base:"b",parameter:nil)我已经让它像这样工作了(但它很笨重)......init?(base:String,parameter:String?){switch(base,parameter){ca

swift - 如何在 Swift 中创建一个通用枚举 Equatable?

有一个通用枚举ResultenumResult{casesuccess(T)caseerror}如何使其符合EquatableSwift版本3或更高版本中的协议(protocol)?我试过以下方法:extensionResult:Equatable{staticfunc==(lhs:Result,rhs:Result)->Bool{switch(lhs,rhs){caselet(.success(lhsVal),.success(rhsVal)):returnlhsVal==rhsValcase(.error,.error):returntruedefault:returnfalse}

swift - 这是枚举数组并寻找潜在对象存储到变量中的正确方法吗?

我一直在努力想出一个简洁的标题,但我认为问题很简单:varselectedModule:Module?=nilformoduleinModuleList.modulesArray{ifmodule.name==selectedModuleName{selectedModule=module}}ifletmoduleFound=selectedModule{_set(model:&viewModel.module,button:moduleButton,displayedValue:selectedModuleName,actualValue:moduleFound)}这就是我现在所拥有

ios - Swift 枚举被视为可选?

在“CardDeck”类的下面一行中看起来像这样letcard=CardSprite(value:i,withSuite:suit)我得到错误:Valueofoptionaltype'Suit?'notunwrapped.Didyoumeantouse"!"or"?"根据我对所用构造的理解,我没想到会出现此错误。有谁知道为什么在这个例子中枚举类型Suit被认为是可选的?我正在使用Xcode7beta4。注意:我可以按照XCode弹出的说明来解决这个问题。我只是不明白为什么会这样。XCode建议像这样显式解包letcard=CardSprite(value:i,withSuite:sui

swift - 具有原始值的枚举

为什么我不能用这样的原始值定义枚举?enumEdges:(Double,Double){caseTopLeft=(0.0,0.0)caseTopRight=(1.0,0.0)caseBottomLeft=(0.0,1.0)caseBottomRight=(1.0,1.0)} 最佳答案 元组不能是枚举的原始值类型。来自TheSwiftProgrammingLanguage:Rawvaluescanbestrings,characters,oranyoftheintegerorfloating-pointnumbertypes.不过您可

ios - 如何使用枚举简化并使其更好,快速学习,枚举

我正在通过以下方式定义一些范围letrange0_15=0..我真的很想通过尝试为此使用Enumenumrange:Range{range0_15=0..我得到一个错误Type'CoreDataStach.range'doesnotcomformtoprotocolRawRepresentable是否可以像上面那样定义一个枚举,如果可以,我在这里缺少什么。 最佳答案 像这样尝试:enumrangeEnum:Int{caserange0_15caserange15_30caserange30_45caserange45_60varra

cocoa - 如何将 NSNumber 与快速枚举值进行比较?

我正在尝试对通过NSNotification接收的值和枚举值进行简单比较。我有一些有用的东西,但我不敢相信这是做这件事的正确方法。基本上,我最终得到的解决方案是将NSNumber转换为Int,并获取枚举值的rawValue,将其包装在NSNumber中,然后获取它的integerValue。我尝试的所有其他方法都导致编译器错误,无法在Uint8和Int或类似的东西之间进行转换。observer=NSNotificationCenter.defaultCenter().addObserverForName(AVAudioSessionRouteChangeNotification,obj

ios - 声明在同一文件中时枚举中未声明的类型

我正在尝试创建一个简单的数据类型来存储视频或图像+声音,但我在枚举MovieItem上收到编译错误“使用未声明的类型”和ImageItem.怎么了?structMovieItem{letmovieUrl:NSURL}structImageItem{letimageUrl:NSURL//UIImage?letsoundUrl:NSURL}enumItem{caseMovieItem(MovieItem)//Undeclaredtype:MovieItemcaseImageItem(ImageItem)//Undeclaredtype:ImageItem} 最佳

swift - 将枚举类型的值与关联值进行比较时出现编译器错误?

classMyClass{enumMyEnum{caseFirstCasecaseSecondCase(Int)caseThirdCase}varstate:MyEnum!funcmyMethod(){ifstate!==MyEnum.FirstCase{//Dosomething}}}我得到指向if语句的编译器错误::Binaryoperator'=='cannotbeappliedtotwo'MyClass.MyEnum'operands如果相反,我使用switch语句,则没有问题:switchstate!{//Also,whydoIneed`!`ifstateisalreadya